package cn.iocoder.yudao.module.eval.controller.admin.monitoring.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 督导记录保存 Request VO")
@Data
public class EvalSupervisionRecordSaveReqVO {

    @Schema(description = "记录ID", example = "1")
    private Long id;

    @Schema(description = "计划ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "计划ID不能为空")
    private Long planId;

    @Schema(description = "督导员ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "督导员ID不能为空")
    private Long supervisorId;

    @Schema(description = "检查类型", example = "现场督导")
    private String checkType;

    @Schema(description = "检查地点", example = "培训中心201室")
    private String checkLocation;

    @Schema(description = "检查开始时间", example = "2024-01-01 09:00:00")
    private LocalDateTime checkStartTime;

    @Schema(description = "检查结束时间", example = "2024-01-01 12:00:00")
    private LocalDateTime checkEndTime;

    @Schema(description = "检查项目", example = "[\"考场秩序\",\"考试纪律\"]")
    private String checkItems;

    @Schema(description = "总体评价", example = "良好")
    private String overallAssessment;

    @Schema(description = "检查得分", example = "85.5")
    private Double checkScore;

    @Schema(description = "发现问题", example = "部分考生迟到")
    private String problemsFound;

    @Schema(description = "改进建议", example = "加强时间管理")
    private String suggestions;

    @Schema(description = "检查状态", example = "2")
    private Integer checkStatus;

    @Schema(description = "督导报告内容", example = "督导报告详细内容")
    private String reportContent;

}
